package cn.edu.wynu.string;

import java.util.Random;

public class StringTest06 {
    public static void main(String[] args) {
        // 案例二：使用String来开发验证码。
        // 需求:实现随机产生验证码，验证码的每位可能是数字、大写字母、小写字母。
        // 分析:
        // 设计一个方法，该方法接收一个整型参数，最终要返回对应位数的随机验证码。
        // 方法内定义2个字符串变量:1个用来记住生成的验证码，1个用来记住要用到的全部字符。
        // 定义for循环控制生成多少位随机字符，每次得到一个字符范围内的随机索引，根据索引提取该字符，把该字符交给code变量连接起来，循环结束后，在循环外返回code即可。

        System.out.println(createCode(4));
        System.out.println(createCode(6));

    }
    // 1、设计一个方法，返回指定位数的随机验证码。
    public static String createCode(int n) {
        // 2、定义2个字符串变量:1个用来记住生成的验证码，1个用来记住要用到的全部字符。
        String code = "";
        String data = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

        Random r = new Random();
        // 3、定义一个循环产生每位随机字符
        for (int i = 0; i < n; i++) {
            // 4、随机一个字符范围内的索引
            int index = r.nextInt(data.length());
            // 5、根据索引提取该字符，把该字符交给code变量连接起来
            code += data.charAt(index); // code = code + 字符;
        }
        // 6、在循环外返回code
        return code;
    }
}
